<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/types.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/types.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X1VBUElfTElOVVhfVFlQRVNfSF8w"><span class="b">_UAPI_LINUX_TYPES_H</span></a>
<a name="2" /><span class="True">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X1VBUElfTElOVVhfVFlQRVNfSF8w"><span class="b">_UAPI_LINUX_TYPES_H</span></a>
<a name="3" /><span class="True">       3:</span> 
<a name="4" /><span class="True">       4:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">types</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="5" /><span class="True">       5:</span> 
<a name="6" /><span class="True">       6:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__ASSEMBLY__</span>
<a name="7" /><span class="False">       7:</span> <span class="f">#</span><span class="n">ifndef</span>    <a href="cpu.c_macros_ref.html#_X19LRVJORUxfX18w"><span class="b">__KERNEL__</span></a>
<a name="8" /><span class="False">       8:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X19FWFBPUlRFRF9IRUFERVJTX19fMA__"><span class="b">__EXPORTED_HEADERS__</span></a>
<a name="9" /><span class="False">       9:</span> <span class="f">#</span><span class="b">warning</span> <span class="e">&quot;Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders&quot;</span>
<a name="10" /><span class="False">      10:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* __EXPORTED_HEADERS__ */</span>
<a name="11" /><span class="True">      11:</span> <span class="f">#</span><span class="n">endif</span>
<a name="12" /><span class="True">      12:</span> 
<a name="13" /><span class="True">      13:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">posix_types</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="14" /><span class="True">      14:</span> 
<a name="15" /><span class="True">      15:</span> 
<a name="16" /><span class="True">      16:</span> <span class="k">/*</span>
<a name="17" /><span class="True">      17:</span> <span class="k"> * Below are truly Linux-specific types that should never collide with</span>
<a name="18" /><span class="True">      18:</span> <span class="k"> * any application/library that wants linux/types.h.</span>
<a name="19" /><span class="True">      19:</span> <span class="k"> */</span>
<a name="20" /><span class="True">      20:</span> 
<a name="21" /><span class="False">      21:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__CHECKER__</span>
<a name="22" /><span class="False">      22:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19iaXR3aXNlX19fMA__"><span class="b">__bitwise__</span></a> <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">bitwise</span><span class="f">)</span><span class="f">)</span>
<a name="23" /><span class="True">      23:</span> <span class="f">#</span><span class="n">else</span>
<a name="24" /><span class="True">      24:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19iaXR3aXNlX19fMA__"><span class="b">__bitwise__</span></a>
<a name="25" /><span class="True">      25:</span> <span class="f">#</span><span class="n">endif</span>
<a name="26" /><span class="False">      26:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__CHECK_ENDIAN__</span>
<a name="27" /><span class="False">      27:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19iaXR3aXNlXzA_"><span class="b">__bitwise</span></a> <a href="cpu.c_macros_ref.html#_X19iaXR3aXNlX19fMA__"><span class="b">__bitwise__</span></a>
<a name="28" /><span class="True">      28:</span> <span class="f">#</span><span class="n">else</span>
<a name="29" /><span class="True">      29:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X19iaXR3aXNlXzA_"><span class="b">__bitwise</span></a>
<a name="30" /><span class="True">      30:</span> <span class="f">#</span><span class="n">endif</span>
<a name="31" /><span class="True">      31:</span> 
<a name="32" /><span class="True">      32:</span> <span class="m">typedef</span> <span class="b">__u16</span> <a href="cpu.c_macros_ref.html#_X19iaXR3aXNlXzA_"><span class="b">__bitwise</span></a> <span class="b">__le16</span><span class="f">;</span>
<a name="33" /><span class="True">      33:</span> <span class="m">typedef</span> <span class="b">__u16</span> <a href="cpu.c_macros_ref.html#_X19iaXR3aXNlXzA_"><span class="b">__bitwise</span></a> <span class="b">__be16</span><span class="f">;</span>
<a name="34" /><span class="True">      34:</span> <span class="m">typedef</span> <span class="b">__u32</span> <a href="cpu.c_macros_ref.html#_X19iaXR3aXNlXzA_"><span class="b">__bitwise</span></a> <span class="b">__le32</span><span class="f">;</span>
<a name="35" /><span class="True">      35:</span> <span class="m">typedef</span> <span class="b">__u32</span> <a href="cpu.c_macros_ref.html#_X19iaXR3aXNlXzA_"><span class="b">__bitwise</span></a> <span class="b">__be32</span><span class="f">;</span>
<a name="36" /><span class="True">      36:</span> <span class="m">typedef</span> <span class="b">__u64</span> <a href="cpu.c_macros_ref.html#_X19iaXR3aXNlXzA_"><span class="b">__bitwise</span></a> <span class="b">__le64</span><span class="f">;</span>
<a name="37" /><span class="True">      37:</span> <span class="m">typedef</span> <span class="b">__u64</span> <a href="cpu.c_macros_ref.html#_X19iaXR3aXNlXzA_"><span class="b">__bitwise</span></a> <span class="b">__be64</span><span class="f">;</span>
<a name="38" /><span class="True">      38:</span> 
<a name="39" /><span class="True">      39:</span> <span class="m">typedef</span> <span class="b">__u16</span> <a href="cpu.c_macros_ref.html#_X19iaXR3aXNlXzA_"><span class="b">__bitwise</span></a> <span class="b">__sum16</span><span class="f">;</span>
<a name="40" /><span class="True">      40:</span> <span class="m">typedef</span> <span class="b">__u32</span> <a href="cpu.c_macros_ref.html#_X19iaXR3aXNlXzA_"><span class="b">__bitwise</span></a> <span class="b">__wsum</span><span class="f">;</span>
<a name="41" /><span class="True">      41:</span> 
<a name="42" /><span class="True">      42:</span> <span class="k">/*</span>
<a name="43" /><span class="True">      43:</span> <span class="k"> * aligned_u64 should be used in defining kernel&lt;-&gt;userspace ABIs to avoid</span>
<a name="44" /><span class="True">      44:</span> <span class="k"> * common 32/64-bit compat problems.</span>
<a name="45" /><span class="True">      45:</span> <span class="k"> * 64-bit values align to 4-byte boundaries on x86_32 (and possibly other</span>
<a name="46" /><span class="True">      46:</span> <span class="k"> * architectures) and to 8-byte boundaries on 64-bit architectures.  The new</span>
<a name="47" /><span class="True">      47:</span> <span class="k"> * aligned_64 type enforces 8-byte alignment so that structs containing</span>
<a name="48" /><span class="True">      48:</span> <span class="k"> * aligned_64 values have the same alignment on 32-bit and 64-bit architectures.</span>
<a name="49" /><span class="True">      49:</span> <span class="k"> * No conversions are necessary between 32-bit user-space and a 64-bit kernel.</span>
<a name="50" /><span class="True">      50:</span> <span class="k"> */</span>
<a name="51" /><span class="True">      51:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19hbGlnbmVkX3U2NF8w"><span class="b">__aligned_u64</span></a> <span class="b">__u64</span> <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">aligned</span><span class="f">(</span><span class="c">8</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="52" /><span class="True">      52:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19hbGlnbmVkX2JlNjRfMA__"><span class="b">__aligned_be64</span></a> <span class="b">__be64</span> <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">aligned</span><span class="f">(</span><span class="c">8</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="53" /><span class="True">      53:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19hbGlnbmVkX2xlNjRfMA__"><span class="b">__aligned_le64</span></a> <span class="b">__le64</span> <span class="b">__attribute__</span><span class="f">(</span><span class="f">(</span><span class="b">aligned</span><span class="f">(</span><span class="c">8</span><span class="f">)</span><span class="f">)</span><span class="f">)</span>
<a name="54" /><span class="True">      54:</span> 
<a name="55" /><span class="True">      55:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/*  __ASSEMBLY__ */</span>
<a name="56" /><span class="True">      56:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _UAPI_LINUX_TYPES_H */</span>
<a name="57" /><span class="True">      57:</span> </pre>
  </body>
</html>
